﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Protocolo;
using BaseDeDatos;

public partial class Default2: System.Web.UI.Page
{
    static IList datos;
      
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

            //Se consultan los guias
            String query = "from Persona where tipo_usuario = 1";
            datos = (IList)BaseDeDatos.BD.Consultar(query);
            DataTable datosGridView = new DataTable();
            
            //Se definen los datos que se mostraran en el GridView
            DataColumn columnaNombre = new DataColumn();
            DataColumn columnaEstatus = new DataColumn();
            DataColumn columnaCedula = new DataColumn();
            DataColumn columnaCheck = new DataColumn();


            columnaCedula.ColumnName = "Cedula";
            columnaCedula.DataType = System.Type.GetType("System.String");
            columnaNombre.ColumnName = "Nombres";
            columnaNombre.DataType = System.Type.GetType("System.String");
            columnaEstatus.ColumnName = "Estado";
            columnaEstatus.DataType = System.Type.GetType("System.String");
            
           
            datosGridView.Columns.Add(columnaCedula);
            datosGridView.Columns.Add(columnaNombre);
            datosGridView.Columns.Add(columnaEstatus);
            
                       
            for (int i = 0; i < datos.Count; i++)
            {
                //Para mostrar la información de todos los guias de forma formateada 
                Persona aux = (Persona)datos[i];
                DataRow fila = datosGridView.NewRow();
                fila["Cedula"] = aux.CI.ToString();
                fila["Nombres"] = aux.Nombre + " " + aux.Nombre2 + " " + aux.Apellido + " " + aux.Apellido2;
                fila["Estado"] = ((Guia)aux).Estatus;
                
                datosGridView.Rows.Add(fila);
            }

            this.GridView1.DataSource = datosGridView;
            GridView1.DataBind();

        }        
       
        
    }


    protected void Button1_Click(object sender, EventArgs e)
    { 
        //Permite validar si fue seleccionada la persona a modificar.
        //enlaza el modificar con el comando aceptar mostrando el panel.
        int contador=0;
         for (int i = 0; i < datos.Count; i++)
        {
            CheckBox aux = (CheckBox)GridView1.Rows[i].Cells[3].Controls[1];
            
            if (aux.Checked == true)
                contador=contador+1;
        }
        if (contador == 0)
            Panel2.Visible = true;
        else {
            Panel1.Visible = true;
            Panel2.Visible = false;
        }
            
        
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        int indiceGridView = -1;
        String query = "from Persona where tipo_usuario = 1";
        datos = (IList)BaseDeDatos.BD.Consultar(query);
            
        for (int i = 0; i < datos.Count; i++)
        {
            // Se agrega el check en la plantilla del columns.
            
            CheckBox aux = (CheckBox)GridView1.Rows[i].Cells[3].Controls[1];
            Persona modificame = null;

            // Se verifican los guias que han sido seleccionados para modificarse.
            if (aux.Checked == true)
            {
                // Se modifican los guias seleccionados
                //modificame tiene a la persona a ser modificada.
                modificame = (Persona)datos[i];


                //Se lee el DropDownList para saber el nuevo estatus y se cambia 
                //el valor del status del objeto modificame.
                ((Guia)modificame).Estatus = DropDownList1.Text;

                BD.Update(modificame);


            }
            else
                Panel2.Visible = true;

        } Response.Redirect("Cambiar_estatus.aspx");

    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        Response.Redirect("Default.aspx");
    }
}
